/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.cardapiodigital.model;

import br.com.cardapiodigital.data.CategoriadosItensData;
import br.com.cardapiodigital.entity.CategoriadosItens;
import br.com.cardapiodigital.exception.CardapioDigitalException;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author egberto
 */
@ManagedBean
@ViewScoped
public class CategoriadosItensModel extends AbstractModel implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    private CategoriadosItensData catItemData = null;
    private CategoriadosItens catItem = null;
    private List<CategoriadosItens> todasCatItens = null;
    private CategoriadosItens categoriaSelecionada = null;
    
    public CategoriadosItensModel(){       
    }
    
    public void salvar() {
        try {      
            getCatItemData().salvar(getCatItem());            
            closeDialog();
            displayInfoMessageToUser("Created With Sucess");
            carregarTodasCatItens();
            resetCatItem();
        } catch (Exception e) {
            keepDialogOpen();
            displayErrorMessageToUser("Ops, we could not create. Try again later");
            e.printStackTrace();
        }
    }
    
    public void atualizar(){
        try {
            getCatItemData().atualizar(getCategoriaSelecionada());
            closeDialog();
            displayInfoMessageToUser("Updated With Sucess");
            carregarTodasCatItens();
            resetCatItem();
        } catch (Exception e) {
            keepDialogOpen();
            displayErrorMessageToUser("Ops, we could not create. Try again later");
            e.printStackTrace();
        }
    }
    
    public void excluir(){
        try {
            CategoriadosItens id = getCatItemData().obtem(getCategoriaSelecionada().getId());
            getCatItemData().excluir(id.getId());
            closeDialog();
            displayInfoMessageToUser("Deleted With Sucess");
            carregarTodasCatItens();
            resetCatItem();
        } catch (Exception e) {
            keepDialogOpen();
            displayErrorMessageToUser("Ops, we could not create. Try again later");
            e.printStackTrace();
        }
    }

    public CategoriadosItensData getCatItemData() {
        if(catItemData == null){
            catItemData = new CategoriadosItensData();
        }
        return catItemData;
    }

    public void setCatItemData(CategoriadosItensData catItemData) {
        this.catItemData = catItemData;
    }

    public CategoriadosItens getCatItem() {
        if(catItem == null){
            catItem = new CategoriadosItens();
        }
        return catItem;
    }

    public void setCatItem(CategoriadosItens catItem) {
        this.catItem = catItem;
    }

    public List<CategoriadosItens> carregarTodasCatItens() throws CardapioDigitalException {
        return todasCatItens = getCatItemData().buscarTodos();
    }
    
    public void resetCatItem() {
        catItem = new CategoriadosItens();
    }

    public CategoriadosItens getCategoriaSelecionada() {
        if(categoriaSelecionada == null){
            categoriaSelecionada = new CategoriadosItens();
        }
        return categoriaSelecionada;
    }

    public void setCategoriaSelecionada(CategoriadosItens categoriaSelecionada) {
        this.categoriaSelecionada = categoriaSelecionada;
    }

    
    public void onRowSelect(SelectEvent slc) {
        setCategoriaSelecionada((CategoriadosItens) slc.getObject());
    }
    
    
}
